﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PRE
{
        using BLL;
        using DAL.Entities;
    public partial class frmNhanvien : Form
    {
        NhanvienBLL _nhanvienBLL = new NhanvienBLL();
        string bien;
        public frmNhanvien()
        {
            InitializeComponent();

            var tbl = (new DAL.ChucvuDAL()).Select();
            cbChucvu.DataSource = tbl;
        }

        private void frmNhanvien_Load(object sender, EventArgs e)
        {
            var bll = new BLL.NhanvienBLL();
            dsNhanvien.DataSource = bll.Select();
            hienthi_CV(sender, e);
            label11_Click(sender, e);
        }

        private void dsNhanvien_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            txtMaNV.Text = dsNhanvien[0, e.RowIndex].Value + "";
            var tmp = (Nhanvien)_nhanvienBLL.Select(txtMaNV.Text);
            if (tmp != null)
            {
                txtTenNV.Text = tmp.HOTEN_NV;
                
                cbTenDN.Text = tmp.TEN_DANG_NHAP;
                cbChucvu.Text = tmp.MA_CV;
                cbGioitinh.Text = tmp.GIOI_TINH;
                //MA_CV = Convert.ToInt32(cbChucvu.SelectedValue);
                txtDiachi.Text = tmp.DIA_CHI;
                txtSdt.Text = tmp.SO_DT;
                txtMucluong.Text = tmp.MUC_LUONG;
            } 
        }

        public void hienthi_CV(object sender, EventArgs e)
        {
            //DataTable dt = new DataTable();
            var bll = new BLL.ChucvuBLL();
            //dt = bll.Select();
            cbChucvu.DataSource = bll.Select(); ;
            //cbChucvu.DataSource = dt;           
            cbChucvu.DisplayMember = "MA_CV";
            cbChucvu.ValueMember = "MA_CV";
            
        }

        public void message(object sender, EventArgs e)
        {
              MessageBox.Show("Nhân viên " + bien + " không thêm đươc! \n Xin vui lòng kiểm tra lại!", " Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        private void cmdThem_Click(object sender, EventArgs e)
        {
            bien = txtTenNV.Text;
            if (txtMaNV.Text + "" != "")
            {
                var o = new Nhanvien() { MA_NV= txtMaNV.Text, HOTEN_NV = txtTenNV.Text, TEN_DANG_NHAP = cbTenDN.Text, MA_CV = cbChucvu.Text, GIOI_TINH = cbGioitinh.Text, DIA_CHI = txtDiachi.Text, SO_DT = txtSdt.Text, MUC_LUONG= txtMucluong.Text};
                if (_nhanvienBLL.Insert(o) > 0)
                {
                    MessageBox.Show("Nhân viên " + txtTenNV.Text + " \n đã được thêm thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else message(sender, e);
             }
            else
            {
                MessageBox.Show("Bạn phải điền đầy đủ thông tin!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            dsNhanvien.DataSource = _nhanvienBLL.Select();
            label11_Click(sender, e);
        }

        private void cmdSua_Click(object sender, EventArgs e)
        {
            if (txtMaNV.Text + "" != "")
            {
                var o = new Nhanvien() { MA_NV = txtMaNV.Text, HOTEN_NV = txtTenNV.Text, TEN_DANG_NHAP = cbTenDN.Text, MA_CV = cbChucvu.Text, GIOI_TINH = cbGioitinh.Text, DIA_CHI = txtDiachi.Text, SO_DT = txtSdt.Text, MUC_LUONG = txtMucluong.Text };
                if (_nhanvienBLL.Update(o) > 0) MessageBox.Show("Nhân viên " + txtTenNV.Text + " \n đã được cập nhật thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                else MessageBox.Show("Nhân viên: " + txtTenNV.Text+ " cập nhật thất bại! \n Xin vui lòng kiểm tra lại!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                MessageBox.Show("Bạn phải điền đầy đủ thông tin!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            dsNhanvien.DataSource = _nhanvienBLL.Select();
            label11_Click(sender, e);
        }

        private void cmdXoa_Click(object sender, EventArgs e)
        {
            if (txtMaNV.Text + "" != "")
            {
                if (_nhanvienBLL.Delete(txtMaNV.Text) > 0) MessageBox.Show("Nhân viên " + txtTenNV.Text + " \n đã được xóa  thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                else MessageBox.Show("Nhân viên " + txtTenNV.Text + " không được xóa!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else MessageBox.Show("Bạn chưa chọn đối tượng để xóa!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            dsNhanvien.DataSource = _nhanvienBLL.Select();
            label11_Click(sender, e);
        }

        private void cmdLammoi_Click(object sender, EventArgs e)
        {
            txtMaNV.Text = "";
            txtTenNV.Text = "";
            cbTenDN.Text = "";
            cbChucvu.Text = "";
            cbGioitinh.Text = "";
            txtDiachi.Text = "";
            txtSdt.Text = "";
            txtMucluong.Text = "";
            txtMaNV.Focus();
            label11_Click(sender, e);
         }

        private void cmdThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void cmdTimkiem_Click(object sender, EventArgs e)
        {
            if ((txtTimkiem.Text + " "  != " ") && (rdMaNV.Checked))
            {
                dsNhanvien.DataSource = _nhanvienBLL.Select_MA_NV(txtTimkiem.Text);
                label11_Click(sender, e);
            }
            else if ((txtTimkiem.Text + " " != " ") && (rdTenNV.Checked))
            {
                dsNhanvien.DataSource = _nhanvienBLL.Select_HOTEN_NV(txtTimkiem.Text);
                label11_Click(sender, e);
            }
            else if ((txtTimkiem.Text + " " != " ") && (rdChucvu.Checked))
            {
                dsNhanvien.DataSource = _nhanvienBLL.Select_CHUC_VU(txtTimkiem.Text);
                label11_Click(sender, e);
            }
            else if ((txtTimkiem.Text + " " != " ") && (rdDiachi.Checked))
            {
                dsNhanvien.DataSource = _nhanvienBLL.Select_DIA_CHI(txtTimkiem.Text);
                label11_Click(sender, e);
            }
            else if ((dsNhanvien.RowCount ==1) && (txtTimkiem.Text+ " " != " "))
            {
                MessageBox.Show("Không tìm thấy nhân viên nào!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                label11_Click(sender, e);
            }
            else
            {
                MessageBox.Show("Nhập thông tin cần tìm!");
                dsNhanvien.DataSource = _nhanvienBLL.Select();
                label11_Click(sender, e);
            }
        }

        private void label11_Click(object sender, EventArgs e)
        {
            int sql = dsNhanvien.Rows.Count - 1;
            label11.Text = "Tổng số nhân viên hiện tại là: " + sql.ToString() + " Nhân viên";
        }
    }
}
